描述
将十六进制数转换成十进制数
输入
第一行有一个整数T,表示共有T组数据
接下来T行,每一行为一个16进制无符号正整数,位数不超过8位,数中的a-f均为大写字母,数前没有多余的0
输出
输出共T行,每一行是一组数据的十进制表示,数字前不得有多余的0。
十进制数小于2^31
样例输入
接下来T行,每一行为一个16进制无符号正整数,位数不超过8位,数中的a-f均为大写字母,数前没有多余的0
十进制数小于2^31
4 A F FFFE 10001
样例输出
10 15 65534 65537
#include<stdio.h>
#include<math.h>
#include<string.h>
int main()
{
int i,n,sum,stra,b[10];
char a[10];
scanf("%d",&n);
getchar();
while(n--)
{
sum=0;
gets(a);
stra=strlen(a);
for(i=0;i<stra;i++)
{
if(a[i]>='0'&&a[i]<='9') b[i]=a[i]-'0';
if(a[i]=='A') b[i]=10;
if(a[i]=='B') b[i]=11;
if(a[i]=='C') b[i]=12;
if(a[i]=='D') b[i]=13;
if(a[i]=='E') b[i]=14;
if(a[i]=='F') b[i]=15;
sum+=(b[i])*pow(16,stra-i-1);
}
printf("%d\n",sum);
}
getchar();
getchar();
return 0;
}